#ifndef __DRIFT_MANAGER_H__
#define __DRIFT_MANAGER_H__

class hkpVehicleInstance;
class DriftControllerInterface;

#include "Singleton.hpp"
#include <map>

class DriftManager : public CSingleton<DriftManager>
{
public:
	DriftManager(void);
	virtual ~DriftManager(void);

public:
	DriftControllerInterface* get_drift_controller(hkpVehicleInstance* pVehicleInstance = NULL);
	void remove_drift_controller(hkpVehicleInstance* pVehicleInstance);

private:
	void reclaim_all(void);

private:
	std::map<hkpVehicleInstance*, DriftControllerInterface*> m_container;
};



#endif